#ifndef GRAPHICS_WINDOW_H
#define GRAPHICS_WINDOW_H

//STL includes
#include <string>

//Project includes
#include "../Math/Size.h"

using namespace Math;

namespace Graphics
{
	class Window
	{
		public:
				/** Creates a graphics window of the specified width and height.
				* By default, fullscreen mode is off.
				*/
				Window(Size size, std::string title="", bool fullscreen=false);

				Size size();
				std::string title();
				bool fullscreen();
				int handle();

				void setSize(Size size);
				void setSize(int width, int height);

				void setTitle(std::string title="");

		private:
				Size _size;
				std::string	_title;
				bool _fullscreen;

				int _handle;

				/** Creates a GLUT window */
				void create();

				/** Sets the window handle */
				void setHandle(int handle);
				/** Enters/Exits fullscreen mode */
				void setFullscreen(bool fullscreen=true);
	};
}
#endif

